package ar.maikoova.GUI;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.EventQueue;
import java.awt.SystemColor;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JDesktopPane;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;

import ar.maikoova.GUIControllers.VentanaPrincipalController;

public class VentanaPrincipal extends JFrame {

	private JPanel contentPane;
	JDesktopPane desktopPane;
//	VentanaPrincipalController ventanaPrincipalController = new VentanaPrincipalController();

	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				final VentanaPrincipal frame = new VentanaPrincipal();
				frame.setVisible(true);
				frame.setMinimumSize(new Dimension(1024,768));
				frame.setResizable(false);
				
			}
		});
	}

	/**
	 * Create the frame.
	 */
	public VentanaPrincipal() {
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 450, 300);
		
		setContentPane(getContentPane());
		
		contentPane.add(getJDesktopPane(), BorderLayout.CENTER);
		
		addMenuBar();
		
//		ventanaPrincipalController.init(this);
	}
	
	private void addMenuBar(){
		JMenuBar menuBar = new JMenuBar();
		this.setJMenuBar(menuBar);
		
		JMenu menuArchivo = new JMenu("Archivo");
		menuBar.add(menuArchivo);

		JMenu menuAltas = new JMenu("Altas");
		menuBar.add(menuAltas);
		
		menuAltas.add(crearItem(new ArquitectoGUI(this, Operacion.Alta), "Arquitecto"));
		menuAltas.add(crearItem(new ClienteInversorGUI(this, Operacion.Alta), "Cliente Inversor"));
		menuAltas.add(crearItem(new ProyectoGUI(this, Operacion.Alta), "Proyecto"));
		menuAltas.add(crearItem(new TerrenoGUI(this, Operacion.Alta), "Terreno"));
		menuAltas.add(crearItem(new UnidadFuncionalGUI(this, Operacion.Alta), "Unidad Funcional"));
		
		//se agrego al menu para probar la gui
		menuAltas.add(crearItem(new ConsumoGUI(this, Operacion.Alta), "Consumo"));
		
		JMenu menuBuscar = new JMenu("Buscar");
		menuBar.add(menuBuscar);
		
		menuBuscar.add(crearItem(new BuscarGUI(this, Elemento.Arquitecto), "Arquitecto"));
		menuBuscar.add(crearItem(new BuscarGUI(this, Elemento.ClienteInversor), "Cliente Inversor"));
		menuBuscar.add(crearItem(new BuscarGUI(this, Elemento.Proyecto), "Proyecto"));
		menuBuscar.add(crearItem(new BuscarGUI(this, Elemento.Terreno), "Terreno"));
		menuBuscar.add(crearItem(new BuscarGUI(this, Elemento.UnidadFuncional), "Unidad Funcional"));
		menuBuscar.add(crearItem(new BuscarGUI2(this, Elemento.Consumo), "Consumo"));

	}
	
	private JMenuItem crearItem(final JPanel panel, String nombreItem){
		JMenuItem menuItemBuscarArquitecto = new JMenuItem(nombreItem);
		menuItemBuscarArquitecto.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				InternalFrame internalFrame = new InternalFrame();
				internalFrame.setContentPane(panel);
				internalFrame.setLocation(0, 0);
				internalFrame.setSize(desktopPane.getWidth(), desktopPane.getHeight());
				internalFrame.setVisible(true);
				desktopPane.removeAll();
				desktopPane.add(internalFrame);
				
			}
		});
		
		return menuItemBuscarArquitecto;
	}
	
	@Override
	public JPanel getContentPane(){
		if(contentPane == null){
			contentPane = new JPanel();
			contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
			contentPane.setLayout(new BorderLayout(0, 0));
			return contentPane;
		}
		return contentPane;
	}
	
	public JDesktopPane getJDesktopPane(){
		if(desktopPane == null){
			desktopPane = new JDesktopPane();
			desktopPane.setBackground(SystemColor.control);
			return desktopPane;
		}
		return desktopPane;
	}

}
